/*
循环选取建议
如果有固定次数，用 for
如果必须执行一次，用 do_while
其他情况用 while
*/

#include <stdio.h>

int main(int argc, char const *argv[])
{
    // 计算阶乘
    int n;
    int fact = 1;
    int i = 1;

    scanf("%d", &n);

    // while法
    while (i <= n)
    {
        fact *= 1;
        i++;
    }

    /*
    for法
    下面for (int i ...)的用法，也就是在for循环中定义i
    只能在C99（及以后？）标准下使用
    另外，while不能这么用

    循环结束时，i = n
    */
    for (int i = 2; i <= n; i++)
    {
        fact *= i;
    }

    // 另一种写法
    // int i = n;
    i = n;
    fact = 1;
    for ( ; i > 1; i--)
    {
        fact *= i;
    }

    printf("%d!=%d\n", n, fact);

    return 0;
}